home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Palettes / PSAction / palette.make_3.1 < prev    next >
Text File  |  1995-06-12  |  5KB  |  125 lines

  1. #
  2. #                               palette.make
  3. #
  4. # Inputs from Makefile.preamble (no defaults):
  5. #    OTHER_CFLAGS - Flags passed to compiler (in addition to -g, -O, etc.)
  6. #    PALETTELDFLAGS - Additional flags passed to ld when linking palettes
  7. #    OTHER_LDFLAGS - Flags passed to ld (in addition to -ObjC, etc.)
  8. #    OTHER_OFILES - Additional relocatables that may be linked in
  9. #    OTHER_PRODUCT_DEPENDS - Other dependencies of this project
  10. #    OTHER_SOURCEFILES - Other source files maintained by .pre/postamble
  11. #    OTHER_GARBAGE - Additional files to be removed by make 'clean' 
  12. #    PRECOMPS - Precompiled headers that should be built before compilation 
  13. #    OTHER_INITIAL_TARGETS - Targets to be built before subprojects, etc.
  14. #
  15. #    MSGFILES - .msg files that should have msgwrap run on them
  16. #    DEFSFILES - .defs files that should have mig run on them
  17. #    MIGFILES - .mig files (no .defs files) that should have mig run on them
  18. #
  19. #    DSTROOT - Virtual root directory prepended to $(INSTALLDIR)
  20. #
  21. # Inputs from Makefile.preamble (with defaults set here or in common.make):
  22. #    NORMAL_CFLAGS - Flags passed to compiler in normal compiles
  23. #    MAKEFILES - Makefiles this project depends on (default = Makefile)
  24. #    DEFAULT_CFLAGS - All compiler flags for this level (default set below)
  25. #
  26. # Inputs from Makefile (avoid setting these, ProjectBuilder controls them):
  27. #    NAME - name of application
  28. #    LANGUAGE - langage in which the project is written (default "English")
  29. #    LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project
  30. #    GLOBAL_RESOURCES - non-localized resources of project
  31. #
  32. #    CLASSES - Class implementation files in project.
  33. #    HFILES - Header files in project.
  34. #    MFILES - Other Objective-C source files in project. 
  35. #    CFILES - Other C source files in project. 
  36. #    PSWFILES - .psw files in the project
  37. #    PSWMFILES - .pswm files in the project
  38. #    SUBPROJECTS - Subprojects of this project
  39. #    BUNDLES - Bundle subprojects of this project
  40. #    OTHERSRCS - Other miscellaneous sources of this project
  41. #    OTHERLINKED - Source files not matching a standard source extention
  42. #    OTHERLINKEDOFILES - Other relocatable files to (always) link in.
  43. #    APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles
  44. #    MAKEFILEDIR - Directory in which to find $(MAKEFILE)
  45. #    MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make)
  46.  
  47.  
  48.  
  49. APP_MAKEFILE_DIR = /NextDeveloper/Makefiles/app
  50. include $(APP_MAKEFILE_DIR)/common.make
  51. include $(APP_MAKEFILE_DIR)/specialrules.make
  52.  
  53. all:: palette
  54.  
  55. palette:: 
  56.     @(evaled_rc_archs="$(RC_ARCHS)"; \
  57.     obj_dir=`echo $$evaled_rc_archs | sed 's/ /_/g'`_obj ; \
  58.     $(MAKE) project \
  59.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  60.         "PROJ_CFLAGS = $(NORMAL_CFLAGS)" \
  61.         "MAKEFILEDIR = $(MAKEFILEDIR)" \
  62.         "RC_CFLAGS = $(RC_CFLAGS)" \
  63.         "SRCROOT = $(SRCROOT)" \
  64.         "OBJROOT = $(OBJROOT)" \
  65.         "PRODUCT_ROOT = $(SYMROOT)/$(NAME).palette" \
  66.         "SYMROOT = $(SYMROOT)/sym" \
  67.         "SYM_DIR = $(SYMROOT)/sym" )
  68.  
  69. debug::
  70.     @(evaled_rc_archs="$(RC_ARCHS)"; \
  71.     obj_dir=`echo $$evaled_rc_archs | sed 's/ /_/g'`_debug_obj ; \
  72.     $(MAKE) project \
  73.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  74.         "PROJ_CFLAGS = $(DEBUG_CFLAGS)" \
  75.         "MAKEFILEDIR = $(MAKEFILEDIR)" \
  76.         "RC_CFLAGS = $(RC_CFLAGS)" \
  77.         "SRCROOT = $(SRCROOT)" \
  78.         "OBJROOT = $(OBJROOT)" \
  79.         "PRODUCT_ROOT = $(SYMROOT)/$(NAME).palette" \
  80.         "SYMROOT = $(SYMROOT)/sym" \
  81.         "SYM_DIR = $(SYMROOT)/sym" )
  82.  
  83. project:: $(INITIAL_TARGETS) subprojs bundles resources $(PRODUCT_ROOT)/$(NAME)
  84.     
  85. $(PRODUCT_ROOT):
  86.     @$(MKDIRS) $(PRODUCT_ROOT)
  87.  
  88. $(PRODUCT_ROOT)/$(NAME): $(OFILE_DIR) $(PRODUCT_DEPENDS) $(PRODUCT_ROOT)
  89.     @(if [ "`$(ECHO) $(OFILES) $(OTHER_OFILES) | wc -w`" != "       0" ] ; then \
  90.         $(ECHO) $(CC) -nostdlib $(ALL_CFLAGS) -r $(PALETTELDFLAGS) -o $(PRODUCT_ROOT)/$(NAME) $(OFILES) $(OTHER_OFILES) $(OTHERLINKED); \
  91.         $(CC) -nostdlib $(ALL_CFLAGS) -r $(PALETTELDFLAGS) -o $(PRODUCT_ROOT)/$(NAME) $(OFILES) $(OTHER_OFILES) $(OTHERLINKED); \
  92.     else \
  93.        $(ECHO) Warning: Building empty palette. ; \
  94.        $(TOUCH) $(SYM_DIR)/$(NAME).c ; \
  95.        $(CC) $(CFLAGS) $(OTHER_CFLAGS) $(RC_CFLAGS) -c $(SYM_DIR)/$(NAME).c -o $(PRODUCT_ROOT)/$(NAME) ; \
  96.     fi ; \
  97.     $(CHMOD) a+x $(PRODUCT_ROOT)/$(NAME) )
  98.  
  99. $(DSTROOT)$(INSTALLDIR):
  100.     @$(MKDIRS) $(DSTROOT)$(INSTALLDIR)
  101.  
  102. before_install:: $(DSTROOT)$(INSTALLDIR)
  103.     $(RM) -rf $(DSTROOT)$(INSTALLDIR)/$(NAME).palette
  104.  
  105. after_install::
  106.  
  107. install:: palette before_install installhdrs $(OTHER_INSTALL_DEPENDS)
  108.     (cd $(SYMROOT); $(TAR) chf - $(NAME).palette) | (cd $(DSTROOT)$(INSTALLDIR); $(TAR) xf -)    
  109.     $(STRIP) $(RELOCATABLE_STRIP_OPTS) $(DSTROOT)$(INSTALLDIR)/$(NAME).palette/$(NAME)
  110.     @(evaled_rc_archs="$(RC_ARCHS)"; \
  111.     obj_dir=`echo $$evaled_rc_archs | sed 's/ /_/g'`_obj ; \
  112.     $(MAKE) after_install     "DSTROOT=$(DSTROOT)" \
  113.                        "OBJROOT=$(OBJROOT)" \
  114.                        "SYMROOT=$(SYMROOT)" \
  115.                 "PRODUCT_ROOT = $(SYMROOT)/$(NAME).palette" \
  116.                 "SYM_DIR = $(SYMROOT)/sym" \
  117.                 "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  118.                 "PROJ_CFLAGS = $(NORMAL_CFLAGS)" \
  119.                 "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \
  120.                 "RC_CFLAGS = $(RC_CFLAGS)" \
  121.                 "RC_ARCHS = $(RC_ARCHS)" )
  122.  
  123. depend:: Makefile.dependencies $(SUBPROJECTS:.subproj=.depend) $(BUNDLES:.bproj=.depend)
  124.  
  125.